import { BaseComponents } from "../common/base/BaseComponent";
import { BaseLogic } from "../common/base/BaseLogic";
import { BaseState } from "../common/base/BaseState";
import { createProxy } from "../common/proxy/ProxyUtil";
import PageOneLogc from "../pages/page_one/PageOneLogic";
import PageOneState from "../pages/page_one/PageOneState";
import PageOneView from "../pages/page_one/PageOneView";
import PageTwoLogc from "../pages/page_two/PageTwoLogic";
import PageTwoState from "../pages/page_two/PageTwoState";

interface GameRoute {
    name: string
    path: string
    binding: string
    logic: BaseLogic<BaseState>
    state: BaseState
}

export const RouteNames = {
    PAGE_ONE: "pageOne",
    PAGE_TWO: "pageTwo"
}


export abstract class Routes {
    static routes: GameRoute[] = [
        {
            name: RouteNames.PAGE_ONE,
            path: 'pages/page_one/PageOne',
            binding: 'PageOneView',
            state: createProxy(new PageOneState),
            logic: new PageOneLogc
        }, {
            name: RouteNames.PAGE_TWO,
            path: 'pages/page_two/PageTwo',
            binding: 'PageTwoView',
            state: createProxy(new PageTwoState),
            logic: new PageTwoLogc
        }
    ]

}